﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Master.Dao.CommonDictionaryDao
 * 类型：       数据访问层
 * 功能说明：   数据字典维护数据访问对象
 * 作者：       王伟栋
 * 创建日期：   2007/08/21
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;

namespace Shpm.App.Master.Dao
{
    public class CommonDictionaryDao : ShpmBaseDao
    {
        /** 取得数据字典列表 */
        public const string GET_COMMON_DICTIONARY_LIST = "CommonDictionary.GetCommonDictionaryList";
        /** 取得数据字典对象 */
        public const string GET_COMMON_DICTIONARY = "CommonDictionary.GetCommonDictionary";
        /** 数据字典存在判断 */
        public const string EXISTS_COMMON_DICTIONARY = "Load";
        /** 取得数据字典列表 */
        public const string FIND_BY_CATALOG = "CommonDictionary.FindByCatalog";
        /** 取得数据字典列表 */
        public const string FIND_BY_COMMON_DICTIONARY = "CommonDictionary.FindByCommonDictionary";
        /** 登录数据字典对象 */
        public const string INS_COMMON_DICTIONARY = "CommonDictionary.InsCommonDictionary";
        /** 更新数据字典对象 */
        public const string UPD_COMMON_DICTIONARY = "CommonDictionary.UpdCommonDictionary";
        /** 删除数据字典对象 */
        public const string DEL_COMMON_DICTIONARY = "CommonDictionary.DelCommonDictionary";
        /** 清空数据字典对象 */
        public const string DELETE_ALL = "CommonDictionary.DeleteAll";

        public CommonDictionaryDao()
        {
        }

        /*
         *名称： Load
         *功能： 取得数据字典对象。
         *参数： paramBean - 检索参数
         *返回： 数据字典对象 
         *说明： 
        */
        public CommonDictionaryBean Load(CommonDictionaryBean paramBean)
        {
            return (CommonDictionaryBean)base.QueryForObject(GET_COMMON_DICTIONARY, paramBean);
        }

        /*
         *名称： GetCommonDictionaryList
         *功能： 取得数据字典列表。
         *参数： 无
         *返回： 数据字典列表
         *说明： 
        */
        public IList GetCommonDictionaryList()
        {
            return base.QueryForList(GET_COMMON_DICTIONARY_LIST, new Object());
        }

        /*
         *名称： FindByCatalog
         *功能： 取得数据字典列表。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表
         *说明： 
        */
        public IList FindByCatalog(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_CATALOG, paramBean);
        }

        /*
         *名称： FindByCommonDictionary
         *功能： 取得数据字典列表。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表
         *说明： 
        */
        public IList FindByCommonDictionary(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_COMMON_DICTIONARY, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录数据字典对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 
        */
        public CommonDictionaryBean Insert(CommonDictionaryBean paramBean)
        {
            return (CommonDictionaryBean)base.Insert(INS_COMMON_DICTIONARY, paramBean);
        }

        /*
         *名称： Update
         *功能： 更新数据字典对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 
        */
        public int Update(CommonDictionaryBean paramBean)
        {
            return base.Update(UPD_COMMON_DICTIONARY, paramBean);
        }

        /*
         *名称： Delete
         *功能： 删除数据字典对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明： 
        */
        public int Delete(CommonDictionaryBean paramBean)
        {
            return base.Delete(DEL_COMMON_DICTIONARY, paramBean);
        }

        /*
         *名称： InsertUpdate
         *功能： 登录/更新数据字典对象。
         *参数： paramBean - 登录/更新对象
         *返回： 
         *说明： 
        */
        public void InsertUpdate(CommonDictionaryBean paramBean)
        {
            if (this.Load(paramBean) != null)
            {
                this.Update(paramBean);
            }
            else
            {
                CommonDictionaryBean dataBean = this.Insert(paramBean);
            }
        }

        /*
         *名称： DeleteAll
         *功能： 清空数据字典对象。
         *参数： 
         *返回： 
         *说明： 
        */
        private void DeleteAll()
        {
            base.Delete(DELETE_ALL);
        }

        /*
         *名称： ImportUpdate
         *功能： 从XML中导入数据字典对象。
         *参数： dataList - 数据字典列表
         *返回： 
         *说明： 
        */
        public void ImportUpdate(IList dataList)
        {
            try
            {
                base.BeginTransaction();

                this.DeleteAll();

                IEnumerator enm = dataList.GetEnumerator();

                while (enm.MoveNext())
                {
                    CommonDictionaryBean dataBean = (CommonDictionaryBean)enm.Current;
                    this.Insert(dataBean);
                }

                base.CommitTransaction();
            }
            catch (Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }
        }
    }
}